\documentclass[tikz,border=2mm]{standalone}
\usepackage{array,amsmath,mathptmx,xcolor,pifont}
\usepackage{bbding}
\usepackage[UTF8]{ctex}
\newcolumntype{C}[1]{>{\centering\let\newline\\\arraybackslash\hspace{0pt}}m{#1}}
\usepackage{tikz-cd}
\usepackage{tikz,graphicx,subfig,caption} % Required for drawing custom shapes
\usetikzlibrary{fit,matrix,chains,arrows,shapes,positioning,arrows.meta,chains,shadows,shapes.callouts,decorations.text,shapes.symbols,shapes.misc, positioning,decorations.pathreplacing,calc,backgrounds,}

% 额外添加
\usepackage{indentfirst}
\usepackage{diagbox}
\usepackage{amssymb}
\usepackage{pifont}

\begin{document}
	\begin{tikzpicture}[>=latex,every node/.style={anchor=south west,,inner sep=0,fill=white}]
		\node(or)[draw,anchor=north,align=center,fill=white,inner sep=0.4em] at (0,0){或};
		
		\node(i1)[anchor=north,align=center,fill=yellow!20] at ([xshift=-5em, yshift=-0.2em]or.north){\textcircled{\textcolor{red}{i}}};
		\node(k)[anchor=north,align=center,fill=yellow!20] at ([xshift=3em, yshift=0em]i1.north){\textcircled{k}};
		\node(bank1)[anchor=north,align=center,fill=yellow!20] at ([xshift=-2em, yshift=0.33em]i1.north){\\};
		\draw[->] (i1.east) -- (k.west);
		\draw[->] (bank1.east) -- (i1.west);
		\node(x)[anchor=north,align=center,fill=yellow!20] at ([xshift=1.5em, yshift=0.3em]i1.north){x};
		\node(r1)[anchor=north,align=center,fill=yellow!20] at ([xshift=1.5em, yshift=-0.6em]i1.north){\underline\ \  r(j)};
		\begin{pgfonlayer}{background}
			\node [draw,draw=red,rounded corners,fill=yellow!20,fit=(i1)(k)(bank1)(r1),inner sep=0.2em] {};
		\end{pgfonlayer}
		
		\node(n1)[draw, rectangle callout, callout relative pointer={(0.2,-0.2)}, rounded corners, align=center ,inner sep=0.3em,fill=yellow!20] at ([xshift=-4em, yshift=1em]i1.north) {移进/归约冲突};
		
		\node(i2)[anchor=north,align=center,fill=pink!20] at ([xshift=3.7em, yshift=-0.2em]or.north){\textcircled{\textcolor{red}{i}}};
		\node(bank2)[anchor=north,align=center,fill=pink!20] at ([xshift=-2em, yshift=0.33em]i2.north){\\};
		\draw[->] (bank2.east) -- (i2.west);
		\node(r2)[anchor=north,align=center,fill=pink!20] at ([xshift=2.5em, yshift=-0.6em]i2.north){\underline\ \  r(j)r(k)};
		\begin{pgfonlayer}{background}
			\node [draw,draw=blue,rounded corners,fill=pink!20,fit=(i2)(bank2)(r2),inner sep=0.2em] {};
		\end{pgfonlayer}
		\node(n2)[draw, rectangle callout, callout relative pointer={(-0.2,0.2)}, rounded corners, align=center ,inner sep=0.3em, fill=pink!20] at ([xshift=1em, yshift=-4em]i2.north) {归约/归约冲突};
		
		\node(note)[draw, draw=red, anchor=north,align=left,fill=white, inner sep=0.5em] at ([xshift=-3.3em, yshift=-0.5em]or.south){\indent 此时，\textcolor{blue}{LR(0)分析法}失效！\\
			需要改进\textcolor{red}{句柄识别器}的\textcolor{blue}{构造方}\\
			{blue}{法}，于是出现了各种不同\\
			的\textcolor{red}{LR()分析法}
		};
		
	\end{tikzpicture}
\end{document}